"""
题目描述: 用连续自然数之和来表达整数(本题分值100)
一个整数可以由连续的自然数之和来表示。
给定一个整数，计算该整数有几种连续自然数之和的表达式，且打印出每种表达式
输入描述:
个目标整数T(1 <=T<= 1000)
输出描述:
该整数的所有表达式和表达式的个数。如果有多种表达式，输出要求为:自然数个数最少的表达式优先输出
每个表达式中按自然数递增的顺序输出，具体的格式参见样例。
在每个测试数据结束时，输出一行”Result:X”，其中X是最终的表达式个数
"""

"""

"""


def main(num):
    results = []
    for length in range(1, num+1):
        start = 1
        while True:
            # 计算
            s_sum = sum(range(start, start+length))
            # 相等，符合条件
            if s_sum == num:
                # 把 这个连续序列 加到结果列表里
                results.append(list(range(start, start+length)))
                # 跳过当前长度的其他起始点（因为自然数序列是连续的）
                start += length
            elif s_sum > num:
                break
            else:
                start += 1

    # 按照序列长度和内部元素排序
    results.sort(key=lambda x: (len(x), x))

    # 打印结果和个数
    count = len(results)
    for sequence in results:
        print(" ".join(map(str, sequence)))
    print(f"Result: {count}")


# 输入处理
T = int(input().strip())
main(T)

